package com.icefish.utils;

import java.text.DateFormat;
import java.text.SimpleDateFormat;

/**
 * Description: （sql.Date 与 util.Date 互转） （字符串 yyyy-mm-dd: hh:mm:ss 与 util.date互转）
 * Date: 2022/12/4 16:08
 * Author: 26480
 *
 * @since JDK 1.8
 */
public class DateTransform {

    public static java.sql.Date util_To_Sql (java.util.Date utilDate) {
        // 新建一个SimpleDateFormat类，让该类以yyyy-MM-dd HH:mm:ss为格式来转换时间

//  java.sql.Date只能到日期，不能到时分秒。而statement或者preparstatement只可以用 java.sql.Date去设置参数
//  因此只能做取舍，是只要日期，还是做成时间戳timestamp
//  这里最后决定做日期，年月日。尽量少动代码，避免天崩地裂
//      SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");

        // 把java.util.Date类型按照yyyy-MM-dd HH:mm:ss的格式转换成字符串类型
        // 比如2022-12-04 09:56:50
        // 现在只剩日期年月日了
        String strDate = simpleDateFormat.format(utilDate);

        //把字符串类型转换成java.sql.Date类型
        java.sql.Date sqlDate = java.sql.Date.valueOf(strDate);

        return sqlDate;
    }

    public static java.util.Date sql_To_Util (java.sql.Date sqlDate) {
        String StrSqlDate = sqlDate.toString();
        java.util.Date date = stringToDate(StrSqlDate);
        return date;
    }

    /**
     * String (2021-12-21 23:59:59) 转为 java.util.Date(2021-12-21 23:59:59)
     */
    public static java.util.Date stringToDate (String s){

        DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        java.util.Date date = null;

        try {
            date = format.parse(s);
        } catch (Exception e) {
           e.printStackTrace();
        }
        return date;
    }
}
